Method and apparatus for device and carrier independent location systems for mobile devices

ABSTRACT

A method and system for a device and carrier independent geographic location protocol. Specifically, the present invention provides location information of a mobile device to third parties in a communication network through a protocol that is device and network carrier independent. Position information of any first format is sent to a proxy server. An identifier that identifies the type and format of the position information is also sent. The proxy server then locates and accesses an executable plug-in module associated with the identifier to convert the position information of the first format into one of a plurality of standard location formats. The executable plug-in module converts the position information into a second standard format as required by the third party. After the position information is converted to the second format, the proxy server sends the position information to the third party.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of application Ser. No.10/964,788, entitled “METHOD AND APPARATUS FOR DEVICE AND CARRIERINDEPENDENT LOCATION SYSTEMS FOR MOBILE DEVICES,” filed Oct. 13, 2004,which is a continuation application of application Ser. No. 09/802,172,entitled “METHOD AND APPARATUS FOR DEVICE AND CARRIER INDEPENDENTLOCATION SYSTEMS FOR MOBILE DEVICES,” filed Mar. 7, 2001, now U.S. Pat.No. 6,823,260, and assigned to the assignee of the present application.The subject matter in the above-identified co-pending and commonly ownedapplications is incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of location systems andprotocols for mobile devices.

2. RELATED ART

Communication networks exist that allow for electronic mobile devices tocommunicate with and retrieve information from a variety of contentproviders in the network. The mobile device can be located anywhere inthe world.

For particular types of information, it is necessary to provide locationinformation in order to process a request from the mobile device. Forexample, a user may require weather information from a content providerlocated on the Internet. In order for the content provider to process arequest for weather information, the content provider must know wherethe user is geographically located in the world.

Heretofore, methods that provide location information of a user, throughtheir mobile device, are network carrier, connection hardware, andconnection software dependent in that a particular type of hardware canonly interface with a particular network carrier in order to providelocation information of a specific format. In other words, the entiresystem is designed for a one-to-one relationship between the hardwaredevice and the network carrier when providing location information to athird party, such as a content provider.

Further, it is preferable that the location information be of a specificformat in order for the content provider to understand the informationand process a request for information. In some cases, the method mayalso be dependent on a proxy server to convert location information ofthe specific format to a published standard format. In that case, theproxy server is able to interpret and understand the information of thespecific format.

For example, an Internet capable mobile handheld device can submit arequest for weather information to a content provider over acommunication network through a proxy server. The proxy server acts toconvert the transfer of information between the mobile device and thecontent provider. In fact, the proxy server ensures that locationinformation coming from the mobile device is converted to a particularformat as requested by the content provider. The request for locationinformation of a specific format from the content provider may beembedded in the web clipping application specific to the contentprovider. The format required by the content provider may be a mailingzip code as used in the United States of America.

Understanding that the content provider requires location information,the connection software driver that connects the mobile device to anetwork communicates with a particular network carrier for specificlocation information. The communicated location information can be ofany particular type, as long as the connection software driver, thenetwork carrier, and the proxy server understand the format and type ofinformation.

In particular, one type of information can be tower information. Whencommunicating with the network, the connection software driver in themobile device may have access to information about the tower or basestation that the mobile device connects through to access thecommunication network. Specifically, a particular type of information isthe tower ID or identification number.

The connection software driver in the mobile device sends the tower IDinformation to the proxy server. The proxy server then can convert thetower ID information to a zip code that corresponds to the location ofthe accessed tower. This conversion can be facilitated with the use of amapping table that ties specific towers to specific zip codes.

After the proxy server converts the location information, the completerequest for weather information, including the converted locationinformation, is sent to the content provider for weather information.The content provider, with the proper location information in the properzip code format, then sends a web page back to the proxy server with theweather information to be sent to the mobile device.

A problem exists in that the process for transferring the locationinformation is device and network carrier specific. If the mobile devicewere to connect to the Internet using a different network carrier anddifferent connection software driver, then location information of anytype would not be generated. The connection software driver would not beable to or understand how to receive tower information from thedifferent network carrier in order to process a request for locationinformation. Thus, the method requires that the mobile device use aparticular network carrier.

Thus, the mobile device must connect to the network using specificconnecting hardware, a specific connecting software driver, and aspecific network carrier. Each of these dependent components understandthat location information of a specific format is required, e.g., thatof tower ID. If, however, the mobile device uses a different connectinghardware, such as a wireless internal modem instead of a built-in radio,the software driver associated with the modem will not know orunderstand that location information is requested. As such, the softwaredriver associated with the modem will not be able to send the necessarytower ID information to the proxy server.

SUMMARY OF THE INVENTION

Embodiments of the present invention disclose a method and system forproviding geographic location information for a mobile device to a thirdparty through a communication network. The present invention provides amore flexible mechanism and protocol for providing location information.In addition, the present invention provides a better interface over acommunication network between a mobile device and a third party forproviding location information. Also, the present invention provides fora more universal system that is device and carrier independent forproviding location information over a communication network.

Specifically, embodiments of the present invention disclose a method andsystem for providing location information of a mobile device to thirdparties in a communication network through a protocol that is device andnetwork carrier independent. Position information of any first format issent to a proxy server in a location information packet. An identifierthat identifies the type and format of the position information is alsosent.

The proxy server then takes the location information packet and based onits identifier, calls a proxy software driver, such as an executableplug-in module. The proxy driver is able to convert the positioninformation of the first format into at least one of a plurality ofpublished standard location formats.

Additionally, the executable plug-in module is able to recognize whichof the plurality of standard location formats most closely matches orexactly matches the format required by the content provider. After theposition information is converted to the format required by the contentprovider, the proxy server sends the position information to the contentprovider.

In one embodiment of the present invention, location information of afirst format is sent from a mobile device to a proxy server. Positioninformation of a first format is created indicating the geographiclocation of the mobile device. The position information is created by asoftware driver located in the mobile device. The software driver may bea network connection driver that connects the mobile device to a networkcarrier. In that case, position information associated with the networkcarrier, such as tower identification number, is relayed back to thesoftware driver. The software driver may be directed to an internalglobal positioning satellite (GPS) hardware device located on the mobiledevice. The software driver may determine location by asking the userfor position information.

The position information of the first format is then sent to a proxyserver. An identifier that indicates the type and format of the positioninformation is also sent. The proxy server accesses a first executableplug-in module or program that is directly associated with theidentifier. The executable plug-in module is able to convert theposition information of the first format into a plurality of standardlocation formats. In one embodiment, the plug-in module is a dynamiclink library (DLL).

The plug-in module is able to determine the required format as requiredby a content provider. The required format is one of the plurality ofstandard location formats in one embodiment of the present invention.The plug-in module is able then to convert the position information ofthe first format into the format required by the content provider. Afterthe conversion, the proxy server sends the position information of therequired format to the content provider.

In another embodiment, the standard position information may be of anytype providing geographic location and may consist of one of thefollowing: network carrier tower identification; network carrier cellID; zip code and postal code; global positioning satellite (GPS)coordinates; city name or code; country name or code; state name orcode; county name or code; closest major airport name or code; phonearea code; train station name or code; time zone; daylight saving time;mobile network ID; mobile network name; mobile network cellular ID; IPaddress; local time; street name; street address; and user ID.

In one embodiment of the present invention, a mobile device sends aquery that is attached to a web clipping application located on themobile device. The query is directed to a third party, such as a contentprovider, over a communication network via a proxy server. A locationinformation packet is also sent to the proxy server along with thequery. The location information packet also contains the positioninformation of the mobile device, and an identifier that indicates theparticular type and format the position information is comprised of.

In another embodiment of the present invention, a third party on thecommunication network initiates a request for location informationpertaining to a mobile electronic device.

In another embodiment of the present invention, a mobile device sends aplurality of position information packets, each of which is identifiedwith an identifier, each of which is associated with a software driverlocated on the mobile device. The proxy server directs each of theplurality of position information packets to the correspondingexecutable plug-in module as per the associated identifier. Each plug-inmodule converts the position information into the standard locationformat that most closely matches the format required by a requestingthird party or content provider. Each plug-in module also gives asatisfaction number that indicates how closely the converted locationinformation matches the required format. For example, if the conversionwas exact, the satisfaction number may be one hundred percent.

These and other objects and advantages of the present invention will nodoubt become obvious to those of ordinary skill in the art after havingread the following detailed description of the preferred embodimentswhich are illustrated in the various drawing figures.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A illustrates a block diagram of a first exemplary networkenvironment including a personal digital assistant in accordance with anembodiment of the present invention.

FIG. 1B illustrates a block diagram of a second exemplary networkenvironment including a personal digital assistant coupled to othercomputer systems and the Internet via a cradle device in accordance withan embodiment of the present invention.

FIG. 2A is a top side perspective view of a palmtop computer system thatcan be used as a platform for the data entry and authenticationembodiments of the present invention.

FIG. 2B is a bottom side perspective view of the palmtop computer systemof FIG. 2A.

FIG. 3 is an exploded view of the components of the palmtop computersystem of FIG. 2A.

FIG. 4 is a perspective view of the cradle device for connecting thepalmtop computer system to other systems via a communication interface.

FIG. 5 is a logical block diagram of the palmtop computer system inaccordance with an embodiment of the present invention.

FIG. 6 illustrates a block diagram of a carrier access network for ahandheld electronic device, in accordance with one embodiment of thepresent invention.

FIG. 7 is a block diagram illustrating an exemplary raw positioninformation packet that is generated by a software driver located on ahandheld electronic device, in accordance with one embodiment of thepresent invention.

FIG. 8 illustrates a block diagram of the proxy server, in accordancewith one embodiment of the present invention.

FIG. 9 is a table illustrating possible forms of standard positioninformation formats, in accordance with one embodiment of the presentinvention.

FIG. 10 is a block diagram of system that illustrates the process ofproviding location information over a communication network, inaccordance with one embodiment of the present invention.

FIG. 11 illustrates a flow chart of steps in accordance with providingposition and location information over a communication network, in oneembodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Reference will now be made in detail to the preferred embodiments of thepresent invention, a method and apparatus for a device and carrierindependent location system, examples of which are illustrated in theaccompanying drawings. While the invention will be described inconjunction with the preferred embodiments, it will be understood thatthey are not intended to limit the invention to these embodiments. Onthe contrary, the invention is intended to cover alternatives,modifications and equivalents, which may be included within the spiritand scope of the invention as defined by the appended claims.

Furthermore, in the following detailed description of the presentinvention, numerous specific details are set forth in order to provide athorough understanding of the present invention. However, it will berecognized by one of ordinary skill in the art that the presentinvention may be practiced without these specific details. In otherinstances, well known methods, procedures, components, and circuits havenot been described in detail as not to unnecessarily obscure aspects ofthe present invention.

-   Notation and Nomenclature

Some portions of the detailed descriptions which follow are presented interms of procedures, steps, logic blocks, processing, and other symbolicrepresentations of operations on data bits that can be performed oncomputer memory. These descriptions and representations are the meansused by those skilled in the data processing arts to most effectivelyconvey the substance of their work to others skilled in the art. Aprocedure, computer executed step, logic block, process, etc., is here,and generally, conceived to be a self-consistent sequence of steps orinstructions leading to a desired result. The steps are those requiringphysical manipulations of physical quantities. Usually, though notnecessarily, these quantities take the form of electrical or magneticsignals capable of being stored, transferred, combined, compared, andotherwise manipulated in a computer system. It has proven convenient attimes, principally for reasons of common usage, to refer to thesesignals as bits, values, elements, symbols, characters, terms, numbers,or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout the present invention,discussions utilizing terms such as “accessing” “processing” or“computing” or “translating” or “calculating” or “determining” or“scrolling” or “displaying” or “recognizing” or the like, refer to theaction and processes of a computer system, or similar electroniccomputing device, that manipulates and transforms data represented asphysical (electronic) quantities within the computer system's registersand memories into other data similarly represented as physicalquantities within the computer system memories or registers or othersuch information storage, transmission or display devices.

-   Exemplary Palmtop Computer System Platform

The present invention is compatible with any mobile electronic device.One of the common types of electronic systems which can be used inaccordance with one embodiment of the present invention is referred toas a personal digital assistant, or commonly called a PDA. The PDA is apocket sized electronic organizer with the capability to store telephonenumbers, addresses, daily appointment, and software that keeps track ofbusiness or personal data such as expenses, etc. Furthermore, the PDAalso has the ability to connect to a personal computer, enabling the twodevices to exchange information, in order to synchronize the informationbetween the two devices. Additionally, the PDA can also be connected toa modem, enabling it to have electronic mail (e-mail) capabilities overthe Internet along with other Internet capabilities. Moreover, anadvanced PDA can have Internet capabilities over a wirelesscommunication interface (e.g., radio interface). In particular, the PDAcan be used to browse Web pages located on the Internet. The PDA can becoupled to a networking environment. It should be appreciated thatembodiments of the present invention are well suited to operate within awide variety of electronic systems (e.g., computer systems) which can becommunicatively coupled to a networking environment, including cellularphones, pagers, etc.

FIG. 1A is a block diagram of an exemplary network environment 50including an exemplary personal digital assistant. The PDA 100 is alsoknown as a palmtop or palm-sized electronic system or computer system.The PDA 100 has the ability to transmit and receive data and informationover a wireless communication interface (e.g., a radio interface). ThePDA 100 is one exemplary implementation on which the present inventioncan operate. The present invention can operate on any portableelectronic system or device. The present invention can also operate on anon-portable system. For example, in one embodiment of the presentinvention, the local area network could be used to query locationinformation.

In one embodiment, base station 32 is both a transmitter and receiverbase station which can be implemented by coupling it into an existingpublic communication network 34. Implemented in this manner, basestation 32 enables the personal digital assistant 100 to communicatewith a proxy server computer system 36, which is coupled by wire 35 tothe existing public telephone network 34. Furthermore, proxy servercomputer system 36 is coupled to the Internet 52, thereby enabling thePDA 100 to communicate with the Internet 52. It should be furtherappreciated that other embodiments of a communications network may beutilized in accordance with the present invention.

The data and information which are communicated between base station 32and the personal digital assistant 100 are a type of information anddata that can conventionally be transferred and received over a publictelephone wire network system. However, a wireless communicationinterface is utilized to communicate data and-information between thePDA 100 and base station 32. It should be appreciated that oneembodiment of a wireless communication system in accordance with thepresent invention is the Mobitex wireless communication system.

FIG. 1B illustrates a system 51 that can be used in conjunction with thepresent invention. System 51 comprises a host computer system 56 whichcan either be a desktop unit as shown, or, alternatively, can be alaptop system 58. Optionally, one or more host computer systems can beused within system 51. Host computer systems 58 and 56 are shownconnected to a communication bus 54, which in one embodiment can be aserial communication bus, but could be of any of a number of well knowndesigns, e.g., a parallel bus, Ethernet Local Area Network (LAN), etc.Optionally, bus 54 can provide communication with the Internet 52 usinga number of well known protocols.

Importantly, bus 54 is also coupled to a cradle 60 for receiving andinitiating communication with a personal digital assistant 100 in oneembodiment of the present invention. Cradle 60 provides an electricaland mechanical communication interface between bus 54 (and anythingcoupled to bus 54) and the computer system 100 for two waycommunications. Computer system 100 also contains a wireless infraredcommunication mechanism 64 (e.g., an infrared emitter and detectordevice) for sending and receiving information from other similarlyequipped devices (see FIG. 1B).

With reference to FIGS. 1A and 1B, it is appreciated that the exemplarypersonal digital assistant or palmtop computer system 100 can be used innetwork environment combining elements of networks 50 and 51. That is,as will be seen below, the PDA 100 can include both a wireless infraredcommunication mechanism and a signal (e.g., radio) receiver/transmitterdevice.

FIG. 2A is a perspective illustration of the top face 100 a of oneembodiment of the palmtop computer system. The top face 100 a contains adisplay screen 105 surrounded by a bezel or cover. A removable stylus 80is also shown. The display screen 105 is a touch screen able to registercontact between the screen and the tip of the stylus 80. The stylus 80can be of any material to make contact with the screen 105. The top face100 a also contains one or more dedicated and/or programmable buttons 75for selecting information and causing the computer system to implementfunctions. The on/off button 95 is also shown.

FIG. 2A also illustrates a handwriting recognition pad or “digitizer”containing two regions 106 a and 106 b. Region 106 a is for the drawingof alphabetic characters therein (and not for numeric characters) forautomatic recognition, and region 106 b is for the drawing of numericcharacters therein (and not for alphabetic characters) for automaticrecognition. The stylus 80 is used for stroking a character within oneof the regions 106 a or 106 b. The stroke information is then fed to aninternal processor for automatic character recognition. Once charactersare recognized, they are typically displayed on the screen forverification and/or modification.

FIG. 2B illustrates the bottom side 100 b of one embodiment of thepalmtop computer system. An optional extendible antenna 85 is shown andalso a battery storage compartment door 90 is shown. A communicationinterface 108 is also shown. In one embodiment of the present invention,the communication interface 108 is a serial communication port, butcould also alternatively be of any of a number of well knowncommunication standards and protocols, e.g., parallel, USB, SCSI,Firewire (IEEE 1394), Ethernet, etc. It is appreciated that interface108 can also be used for charging current when using rechargeablebatteries.

FIG. 3 is an exploded view of the palmtop computer system 100 inaccordance with one implementation. System 100 contains a front cover210 having an outline of region 106 and holes 75 a for receiving buttons75 b. A flat panel display 105 (both liquid crystal display and touchscreen) fits into front cover 210. Any of a number of displaytechnologies can be used, e.g., liquid crystal display (LCD), fieldemission display (FED), plasma, etc., for the flat panel display 105. Abattery 215 provides electrical power. A contrast adjustment(potentiometer) 220 is also shown. On/off button 95 is shown along withan infrared emitter and detector device 64. A flex circuit 230 is shownalong with a PC board 225 containing electronics and logic (e.g.,memory, communication bus, processor, etc.) for implementing computersystem functionality. A digitizer pad can be part of the displayassembly or it can also be included in PC board 225. A midframe 235 isshown along with stylus 80. Position adjustable antenna 85 is shown.

A radio receiver/transmitter device 240 is also shown between themidframe and the rear cover 245 of FIG. 3. The receiver/transmitterdevice 240 is coupled to the antenna 85 and also coupled to communicatewith the PC board 225. In one implementation, the Mobitex wirelesscommunication system is used to provide two way communication betweensystem 100 and other networked computers and/or the Internet via a proxyserver. In other embodiments, TCP protocol can be used.

FIG. 4 is a perspective illustration of one embodiment of the cradle 60for receiving the palmtop computer system 100. Cradle 60 contains amechanical and electrical interface 260 for interfacing withcommunication interface 108 (FIG. 2B) of computer system 100 when system100 is slid into the cradle 60 in an upright position. Once inserted,button 270 can be pressed to initiate two way communication betweensystem 100 and other computer systems coupled to electrical interfacecable 265.

Referring now to FIG. 5, portions of the present electronic system arecomprised of computer-readable and computer-executable instructionswhich reside, for example, in computer-readable media of an electronicsystem (e.g., personal digital assistant, computer system, and thelike). FIG. 5 is a block diagram of exemplary interior components of anexemplary personal digital assistant 100 upon which embodiments of thepresent invention may be implemented. It is appreciated that theexemplary PDA 100 of FIG. 5 is only exemplary and that the presentinvention can operate within a number of different electronic systemsincluding general purpose networked computer systems, embedded computersystems, and stand alone electronic systems such as a cellular telephoneor a pager.

FIG. 5 illustrates circuitry of an exemplary electronic system orcomputer system 100 (such as the personal digital assistant), some ofwhich can be implemented on PC board 225 (FIG. 3). Exemplary computersystem 100 includes an address/data bus 99 for communicatinginformation, a central processor 101 coupled with the bus 99 forprocessing information and instructions, a volatile memory 102 (e.g.,random access memory (RAM), static RAM dynamic RAM, etc.) coupled withthe bus 99 for storing information and instructions for the centralprocessor 101 and a non-volatile memory 103 (e.g., read only memory(ROM), programmable ROM, flash memory, EPROM, EEPROM, etc.) coupled tothe bus 99 for storing static information and instructions for theprocessor 101. Exemplary computer system 100 also includes an optionaldata storage device 104 (e.g., memory card, hard drive, etc.) coupledwith the bus 99 for storing information and instructions. Data storagedevice 104 can be removable. As described above, exemplary computersystem 100 also contains an electronic display device 105 coupled to thebus 99 for displaying information to the computer user. In oneembodiment, PC board 225 (FIG. 3) can contain the processor 101, the bus99, the ROM 103 and the RAM 102.

Also included in computer system 100 of FIG. 5 is an alphanumeric inputdevice 106 which in one implementation is a handwriting recognition pad(“digitizer”) having regions 106 a and 106 b (FIG. 2A), for instance.Device 106 can communicate information (spatial data and pressure data)and command selections to the central processor 101. System 100 alsoincludes an optional cursor control or directing device 107 coupled tothe bus for communicating user input information and command selectionsto the central processor 101. In one implementation, device 107 is atouch screen device incorporated with screen 105. Device 107 is capableof registering a position on the screen 105 where the stylus makescontact and the pressure of the contact. The display device 105 utilizedwith the computer system 100 may be a liquid crystal device, cathode raytube (CRT), field emission device (FED, also called flat panel CRT) orother display device suitable for creating graphic images andalphanumeric characters recognizable to the user. In the preferredembodiment, display 105 is a flat panel display.

With reference still to FIG. 5, exemplary computer system 100 alsoincludes a signal input/output device 108 which is coupled to bus 99 forproviding a communication link between computer system 100 and a networkenvironment (e.g., network environment 50 and 51 of FIGS. 1A and 1Brespectively). As such signal input/output device 108 enables centralprocessor unit 101 to communicate wirelessly with other electronicsystems coupled to the network. It should be appreciated that within thepresent embodiment, signal input/output device 108 is coupled to antenna85 and provides the functionality to transmit and receive informationover a wireless communication interface. It should be furtherappreciated that the present embodiment of signal input/output device108 is well-suited to be implemented in a wide variety of ways. Forexample, signal input/output device 108 could be implemented as a modem.Further, signal input/output communication device 108, also coupled tobus 99, can be a serial port for communicating with the cradle 60.Additionally, device 108 can also include an infrared communicationport.

Web Platform Applications

A method and system are described utilizing web platform applicationsand applications in general. Web platform applications resident on apersonal digital assistant 100 are software programs that can runindependently, or can be extensions of and supported by correspondingapplications located on remote computer systems. Web platformapplications are commonly known as web clipping applications, an exampleof which is a Palm Query Application (PQA), also known as web clippingapplication (WCA).

Web platform applications on PDA 100 can be extensions of correspondingapplications located on a remote stand-alone computer system. Forexample, through synchronizing the PDA 100 with a stand-alone computersystem, an address book application located on a PDA 100 can exchangedata with and be supported by the corresponding applications located ona stand-alone computer system, such as system 56 in FIG. 1B. The processof synchronization is described in more detail in the following threeU.S. patents which are hereby incorporated by reference: U.S. Pat. No.5,727,202 entitled “Method and Apparatus for Synchronizing Informationon Two Different Computer Systems”, issued Mar. 10, 1998; U.S. Pat. No.5,832,489 entitled Method and Apparatus for Synchronizing Information onTwo Different Computer Systems”, issued Nov. 3, 1998; U.S. Pat. No.6,006,274 entitled “Method and Apparatus using a Pass Through PersonalComputer Connected to Both a Local Communication Link and a ComputerNetwork for Identifying and Synchronizing a Preferred Computer with aPortable Computer”, issued Dec. 21, 1999.

Furthermore, web platform applications facilitate user interaction withcontent servers associated with those applications. The web platformapplication contains user-interface elements that retrieves, updates,and displays content on a PDA 100. A host of installed web applicationson PDA 100 can provide access to specific types of information such asstock quotes, flight schedules, restaurant listing, as well as otherpieces of information while connected to the Internet. Additionally, aweb platform application can facilitate user interaction with a contentserver by having a user fill out query forms located on a web platformapplication while disconnected from the Internet. Subsequently, theforms are sent out for processing the next time the PDA 100 issynchronized with a host computer system, such as system 56 in FIG. 1B.

An example of a web platform application that is supported by a contentserver, that maintains a specific web site, could be a weatherapplication. A user can use the weather web platform application tointeract with the weather content server to access information about thelatest weather conditions for the location of the user.

A user accesses information from a content server based on a simplequery and response protocol. The query portion of the web platformapplication is stored locally on the PDA 100. The user enters data in toa request form (e.g., for a stock symbol, news topic, weatherconditions, or name to look up) without even going on-line.

-   Providing Device and Carrier Independent Position Information of a    Mobile Device Through a Communication Network

Although the description of-the present invention will focus on anexemplary personal digital assistant (hereinafter referred to as “PDA”)or palmtop: computer system, the present invention can be practiced withother electronic systems or electronic devices (e.g. personal computersystems, cellular phones, pagers, portable web devices, etc.).

FIG. 6 illustrates a block diagram of the carrier access network 600 fora PDA 100, in one embodiment of the present invention. PDA 100 canaccess the network through a carrier through a number of connectionhardware mechanisms. For example, the connection hardware could be aninternal radio, wireless modem, wireline modem, a cradle attached to ahost compute, etc. The PDA 100 could also have additional hardwaredevices like a Global Positioning Satellite (GPS) receiver. Each ofthese hardware access mechanisms or hardware devices can be representedas hardware device one in block 610, hardware device two in block 612,through the n hardware device in block 615.

Continuing with FIG. 6, there is a software driver for each access orconnection hardware. There is also a software driver for each hardwaredevice on the PDA 100. For example, for hardware device-one 610, thereis an associated software driver-one 620. The other associated driversare represented as driver-two 622, through the nth driver 625. Thesoftware driver of an access device coordinates the interaction betweenthe PDA 100 and a base station of a specific carrier network, such asbase station 32 of FIG. 1A, in order to access a communication network,such as the Internet.

In one embodiment of the present invention, the software driverunderstands that position information of the PDA 100 is required to senda query by the PDA 100. This query may be associated with a web clippingapplication (WCA) located on PDA 100, such as a weather WCA. Thesoftware driver may need to communicate with the carrier network toobtain whatever position information is available. For example, thecarrier network may provide zip code or identification information forthe closest tower providing access to the communication network for thePDA 100.

In another embodiment of the present invention, the PDA 100 may havemultiple hardware devices that are capable of producing positioninformation. For example, the software driver associated with a GPSsystem on the PDA 100 is capable of providing very accurate positioninformation.

It is appreciated that there are many different ways to determine theprecise or approximate location of a mobile device on the globe. Thesemethods include, among others, the use of a GPS locator, findingsomething specific to the wireless (or wireline) network, such as usingthe cell identification (ID), asking the user where the mobile device islocated for street names or addresses, or even determining positioninformation from the date, hour and angle of the sun. Other types ofinformation include mobile network carrier tower identification, mobilenetwork carrier cell ID, mobile network ID, Internet IP address, userID, network frequency, etc. The present invention can utilize any ofthese mechanisms to determine position information of the PDA 100.

In one embodiment, determining the position information of the PDA 100is device and carrier independent. In other words, regardless of whatdevice, or hardware used to access a communication network, or whichcarrier network is used to access the communication network, the presentinvention allows for the possibility for the PDA 100 to access any typeof position information in order to provide location information to aproxy server.

In one embodiment, the location information may have been requested by athird party on the communication network that desires locationinformation of a PDA 100. In another embodiment, the locationinformation may be required by a content provider in order to process arequest for information by the PDA 100. For example, a query or requestfor weather information requires location information to be provided.The location information may be provided in the initial query, via a webclipping application, or by a request by the content server.

FIG. 7 is a block diagram illustrating the raw position informationpacket 700 that is generated by a software driver located on the PDA100, in accordance with one embodiment of the present invention. Thepacket 700 is a packet of digital data that might come from differentsources of information to determine where the location of the connectionhardware associated with the PDA 100. The precision of this locationinformation may vary depending on the following: a) the type andsophistication of the mobile device; b) the carrier network; and c) thecapabilities of the connection hardware and the software driverassociated with the hardware. Typical information may be informationrelated to the base station that the PDA 100 uses to access thecommunication network.

Continuing with FIG. 7, packet 700 may contain a raw positioninformation identifier 710. This identifier 710 will indicate what typeor format of location information data 730 is included within the packet700. For example, if the data 730 is actual GPS coordinates of the PDA100, the identifier may be number 17.

Additionally, raw information packet 700 may contain multiple types oflocation information in another embodiment. The identifier 710 may alsocontain information about electronic device that is sending the rawpositing information identifier 710, such as the phone or PDA type.Furthermore, packet 700 may contain a length portion 720 that indicatesthe length of data 730.

In accordance with another embodiment of the present invention, each ofthe parts of the packet 700 is comprised of an 8 bit byte. So, theidentifier 710 would be a maximum of 8 bits. It is appreciated that thisis exemplary only and that each of the parts may be larger than 8 bitsto accommodate the various of methods in determining locationinformation.

Furthermore, more than one raw position information packet 700 may begenerated by the software drivers associated with the hardware devicesfor a PDA 100. The more location information that is presented for aspecific PDA 100, the better the chance of getting precise locationinformation.

FIG. 8 illustrates a block diagram of the proxy server 36, in accordancewith one embodiment of the present invention. The proxy server can bethe proxy server 36 in FIG. 1A. FIG. 8 illustrates that a raw locationpacket 700 is sent to proxy server 36. In one embodiment of the presentinvention, the operating system of the PDA 100 takes the raw informationpacket 700 and sends the packet 700 to the proxy server. This locationinformation might be more or less accurate with respect to the specificlocation information of the PDA 100. In any case, the raw locationpacket 700 will be identified using a raw location packet identifier710.

The proxy server facilitates the interface of information between thePDA 100 and the content provider. For example, the proxy server 36 takesa query for weather information from the PDA 100 and sends it to thecontent provider over the Internet 52. Alternatively, the proxy servertakes the resulting web page with weather information and sends it backto the PDA.

In one embodiment of the present invention, the proxy server 36 receivesthe raw information packet 700 from a PDA 100. The raw informationpacket 700 may be associated with a query from a web clippingapplication, or from a request from a third party request for locationinformation regarding the PDA 100.

The proxy server 36 then locates the proper executable plug-in moduleassociated with the raw information packet 700. The proper plug-inmodule is determined from the identifier associated with packet 700. Inone embodiment of the present invention, each of the plug-in modules aredynamic link libraries (DLLs). For example, packet 700 may be associatedwith DLL-1810 of FIG. 8. Each of the plugin module programs in FIG. 8are able to convert the raw location information contained within anassociated packet, such as packet 700, into at least one of a pluralityof standard location formats.

In one embodiment of the present invention, these conversion programsare located within raw location dynamic link libraries (DLLS) containedwithin the proxy server. These DLLs are sometimes called proxy drivers.It is appreciated that the use of DLLs is exemplary only and that othertechnologies are equally useful, such as regular libraries, modules,etc.

Each of the raw location DLLs store executable routines as files thatcan be loaded and accessed when needed by a program, for example theconversion of the location information into a standard locationinformation format. The programs contained within the raw location DLLcan contain code that accesses tables contained within the raw locationDLL, or even access information, tables, or programs contained withinother web sites over a communication network, as shown by the source ofinformation block 840 attached to raw location DLL-n 830.

Continuing with FIG. 8, proxy server 36 contains as many raw locationDLLs as are necessary to convert the myriad of raw position informationprovided by the PDA 100 into standardized location formats. Proxy server36 contains raw location DLL-1810, raw location DLL-2820, and on up toraw location DLL-n 830.

In accordance with embodiments of the present invention, this device andcarrier independent system for providing location information allows forthe addition of any new connection hardware or hardware device bysupplying a corresponding software driver to the PDA 100 and acorresponding raw location DLL at the proxy server. The software driverknows how to interact with this new connection hardware or hardwaredevice, such as a GPS receiver, in order to generate any possible rawlocation packet.

The proxy server will convert the raw location packet received from thePDA 100 using the appropriate raw location DLL, or proxy driver, inorder to transform it into at least one of a plurality of standardizedlocation information formats recognizable by the requesting party.

FIG. 9 is a Table 900 illustrating a plurality of standardized locationinformation formats. Location information given in packet 700 isconverted by a corresponding DLL into a standard location format asexemplified in Table 900.

For example, in processing a request for weather information over theInternet, the content provider may require only zip code information 912to be converted from the raw location information packet 700. The rawinformation packet 700 may contain tower ID information. A correspondingexecutable plug-in module at the proxy server will take the tower IDinformation and convert that data into a zip code which corresponds tothat tower. The zip code 912 typically corresponds to the tower or basestation that the PDA 100 accesses the communication network. As such,the zip code may have an accuracy that can vary from a few hundredsquare feet to many hundreds of miles.

More specific location information may be required from contentproviders that need to know within a few meters the location of the PDA100. For example, emergency health care services may require exactlocation information in the format of GPS coordinates 914.

It is appreciated that Table 900 is exemplary only and that otherstandard location formats not shown in Table 900 are possible such asclosest major airport name or code, phone area code, time zone, daylightsaving time, etc.

FIG. 10 is a block diagram of system 1000 that illustrates the processof providing location information over a communication network, inaccordance with one embodiment of the present invention. System 1000shows a PDA 100 that connects to a communication network using variousconnection hardware and software drivers 600. The PDA can use a wirelessconnection to a base station 32 or have a direst wireline connection tothe proxy server 36. In the case of a wireless connection, a wirelessservice provider 1010 or carrier network 1010 is used to connect to theproxy server. In either case, raw positioning information 700 is sent tothe proxy server 36 by the PDA 100.

At the proxy server 36, the raw position information of a first formatis delivered to the corresponding DLL. The corresponding DLL isdetermined from an identifier sent along with the raw positioninginformation 70. The proxy server locates and accesses an appropriateDLL, 1010, 1020, or 1030 to convert the location information into atleast one of a plurality of standardized location information formats.The content provider 1050 is able to interpret the position or locationinformation in the standardized format. The DLLs can access otherprograms or databases in other content providers or wireless serviceproviders, such as provider B 1040.

In accordance with another embodiment of the present invention, the DLLassociated with the raw information packet 700 is able to convert thelocation information of the first format into a plurality of standardlocation information formats. Also, the DLL can determine which standardlocation information format is closest to the format required by arequesting third party, or the content provider that is the object of aweb clipping application. Thus, the DLL knows the format the locationinformation is included in the raw information packet 700 and the formatrequired by the requesting party or content provider. The DLL then isable to convert the raw location information packet 700 into the formatclosest to the required format. In another embodiment, the DLL is ableto convert the raw location information packet directly into therequired format.

FIG. 11 illustrates a flow chart of steps in accordance with providingposition and location information over a communication network, such asthe internet, in one embodiment of the present invention. Process 1100begins with understanding that a content provider requires geographicposition information in order to process a query or request forinformation from an electronic device, such as PDA 100, in step 1110.

In step 1120, position information of a first format is created by thePDA 100. The position information is created by software drivers locatedon the PDA 100. These software drivers may be network access drivers ormay be associated with location hardware on the PDA 100, such as a GPSdevice.

In one embodiment, the position information is created by the softwaredriver associated with the network connecting hardware. In that case,the software driver sends a request for the position information of saidfirst format to the network carrier. The network carrier returns theinformation of a first format.

In another embodiment of the present invention, the software driverqueries the-user for location information of the first format. Forexample, the user may provide zip code information, address information,etc. In particular, the user may provide location information that isnot associated with the PDA 100. Such is the case when the user istraveling, but wants movie information for a location near the user'shome.

In step 1130 of process 1100, the electronic device sends positioninformation of the first format to a proxy server. This positioninformation may be of any format that is particular to the carriernetwork, or hardware device, or connection hardware.

In step 1140 of process 1100, the PDA 100 sends an identifier with theposition information. The identifier indicates the type and format ofthe position information. Specifically, the identifier tells the proxyserver that the position information is of a first format.

In step 1150 of process 1100, the proxy server determines a firstexecutable program that is associated with the position information of afirst format. The associated executable program is determined from theidentifier contained within the position information. In one embodiment,a plurality of executable programs is located within the proxy server,each of the executable programs associated with location informationpackets of specific formats.

In step 1160, the proxy server accesses the associated or firstexecutable program in order to convert the position information from thefirst format into a first standard location format. This standardlocation format is recognizable by the requester of the locationinformation.

In another embodiment of the present invention, the first executableprogram is capable of converting the position information of the firstformat into a plurality of standard location formats. The executableprogram is able to compare and recognize which of the standard locationformats most closely matches the format as requested by a third party ora content provider.

Continuing with process 1100, in step 1170 the position information ofthe first format is converted into a first standard location format. Instep 1180, the position information in the first standard locationformat is sent to the third party requesting the information. The thirdparty may be a content provider.

In accordance with another embodiment, in the case where a third partyis independently requesting location information, a specific request ismade by the third party at a specific time for location information of aparticular mobile device. For example, the third party may provideadvertising for a local coffee shop. The third party has a request forlocation information pertaining to all mobile devices within a zip codearea of the coffee shop. If any mobile device enters into a carriernetwork within the zip code, the third party is notified, whereby thethird party can have a content provider send out an advertisement forthat coffee shop.

In another embodiment of the present invention, a mobile device sends aplurality of position information packets, each of which is identifiedwith an identifier, each of which is associated with a software driverlocated on the mobile device. The proxy server directs each of theplurality of position information packets to the correspondingexecutable plug-in module as per the associated identifier. Each plug-inmodule converts the position information into the standard locationformat that most closely matches the format required by a requestingthird party or content provider. Each plug-in module also gives asatisfaction number that indicates how closely the converted locationinformation matches the required format. For example, if the conversionwas exact, the satisfaction number may be one hundred percent.

The proxy server then decides which one of the converted positioninformation packets will be sent to the requesting party. In oneembodiment, depending on the satisfaction value given by each of theDLLs, the proxy server will select the packet with the highestsatisfaction value.

The flexibility of the process 1100, in accordance with embodiments ofthe present invention is without limit. Any mobile device locatedanywhere in the world can use any carrier network provider to talk toany server on the Internet in order to provide location information.Thus, embodiments of the present invention are device and carrierindependent.

While the method of embodiments illustrated in process 1100 showspecific sequences and quantity of steps, the present invention issuitable to alternative embodiments. For example, not all the stepsprovided for in the method are required for the present invention.Furthermore, additional steps can be added to the steps presented in thepresent embodiment. Likewise, the sequences of steps can be modifieddepending upon the application.

The instructions for the steps, and the data input and output from thesteps of process 1100 may be implemented utilizing processor 101 and ROMmemory 103 and RAM memory 102, as shown in FIG. 5. Furthermore, othertypes of memory storage can be utilized to accomplish the aforementionedsuch as a hard drive, a CD ROM, flash memory, or any compact integratedcircuit memory storage device.

The preferred embodiment of the present invention, a device and carriermethod and system for providing location information, is thus described.While the present invention has been described in particularembodiments, it should be appreciated that the present invention shouldnot be construed as limited by such embodiments, but rather construedaccording to the below claims.

1. A system for providing information from a content server to anelectronic device through a remote computer system comprising: a contentserver comprising information; an electronic device comprising aprocessor and a memory, the processor executing a web platformapplication, the web platform application comprising a request formwherein a user of the electronic device inputs data into the requestform when the electronic device is not online and the request formincluding the data inputted by the user is stored in the electronicdevice memory; a computer system comprising a processor, the computersystem remote to the electronic device, the computer system processorexecuting an application implementing the steps of: receiving therequest form stored in the electronic device memory from the electronicdevice when the electronic device becomes connected online; transferringthe request form to the content server; and retrieving information fromthe content server based on the request form.
 2. The system of claim 1,wherein the web platform application comprises user interface elementsthat retrieve, update or display the information from the content serveron the electronic device.
 3. The system of claim 1, wherein the requestform comprises position information of the electronic device.
 4. Thesystem of claim 1, wherein the application on the computer systemfurther implements the step of creating a complete query based on therequest form from the electronic device according to the content serverspecifications and sending the complete query to the content server. 5.The system of claim 1, wherein the web platform application is supportedby one or more corresponding applications on the computer system remoteto the electronic device.
 6. The system of claim 5, wherein thecorresponding applications are dynamic link libraries.
 7. The system ofclaim 5, wherein the corresponding applications are executable plug-inmodules.
 8. The system of claim 1, wherein the transferring the requestform step comprises synchronizing with host computer system.
 9. Thesystem of claim 1, wherein the electronic device further comprises aconnection hardware device comprising a software driver, the softwaredriver creating position information of the electronic device.
 10. Thesystem of claim 9, wherein the connection hardware device is selectedfrom the group comprising: internal radio, wireless modem, wirelinemodem, a cradle, a global positioning satellite receiver.
 11. The systemof claim 9, wherein the position information is determined using one ofthe methods selected from the group comprising: zip code and postalcode; global positioning satellite (GPS) coordinates; city name or code;country name or code; state name or code; county name or code; closestmajor airport name or code; phone area code; train station name or code;time zone; daylight saving time; mobile network ID; mobile network name;mobile network cellular ID; IP address; local time; street name; streetaddress; and user ID.
 12. The system of claim 9, wherein the positioninformation determination is device and carrier independent.
 13. Thesystem of claim 1, wherein the electronic device is handheld electronicdevice.
 14. The system of claim 1, wherein the electronic device is amobile phone.